// plugin_interface.h
#pragma once
#include <string>
#include<iostream>
// 插件接口抽象基类
class PluginInterface {
public:
    virtual ~PluginInterface() = default;

    // 获取插件信息
    virtual const char* get_name() const = 0; //基类的虚函数是纯虚函数（用 = 0 标记），则子类必须实现该函数

    // 执行插件操作
    virtual int operate(int a, int b) const = 0;


    virtual void log(const std::string& message) {
    std::cout << "[LOG] from PluginInterface " << message << std::endl;
    }

};

// 插件必须实现的函数 - 返回插件实例  声明PluginInterface类型的父类接口函数，子类同时实现该同名函数，调用时直接调用子类的该函数
extern "C" PluginInterface* create_plugin();